package com.csun.cmny.provider.dao;

import com.csun.cmny.provider.model.domain.DmcRfidReaderLocation;
import com.csun.cmny.provider.model.dto.device.DevicePageQuery;
import com.csun.cmny.provider.model.dto.propertyManagement.SelectDeviceDataDto;
import com.csun.cmny.provider.model.dto.rfid.RfidReaderPageQuery;
import com.csun.cmny.provider.model.vo.propertyManagement.PropertyDataVo;
import com.csun.cmny.provider.model.vo.rfid.DmcRfidReaderVo;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

public interface DmcRfidReaderLocationMapper extends Mapper<DmcRfidReaderLocation> {

    /**
     * query rfid reader list with page
     *
     * @param rfidReaderPageQuery rfid reader page query
     *
     * @return the page info
     */
    List<DmcRfidReaderVo> queryRfidReaderListWithPage(RfidReaderPageQuery rfidReaderPageQuery);

    /**
     * query rfid reader not bind rfid reader group
     * <p>
     * the rfid reader bind location
     *
     * @param devicePageQuery   the device page query
     *
     * @return the list
     */
    List<DmcRfidReaderVo> queryNotBindRfidReader(DevicePageQuery devicePageQuery);

    /**
     * select rfid reader by rfid reader id
     *
     * @param deviceId the device id
     *
     * @return the dmc rfid reader vo
     */
    DmcRfidReaderVo selectByRfidReaderId(Long deviceId);

    /**
     * select rfid reader by rfid reader no
     *
     * @param readerNo the rfid reader no
     *
     * @return the dmc rfid reader vo
     */
    DmcRfidReaderVo selectByRfidReaderNo(String readerNo);

    List<PropertyDataVo> selectDeviceData(SelectDeviceDataDto selectDeviceDataDto);
}